package com.xd.center.http.annotation;

import java.lang.annotation.*;

/**
 * @comment @HttpLine("POST /api/findIndexRanking") 0: RequestMethod, 1: path not domain name
 * @see HttpClient
 * demo @HttpLine("POST /user/list1") Object findIndexTrend1(@RequestBody Bean requestBean);
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD})
@Documented
public @interface HttpLine {

  String value() default "";

  Method method() default Method.POST;

  boolean repeatInvoke() default true; //是否允许重复调用 false: 正在调用时，再次调用失败，true：可以多次调用

  String[] repeatInvokeField() default {}; // not-null: 在参数中获取, null: 使用url, 前缀: #(在方法参数中获取value), $(直接使用设置的值)

  enum Method{
    GET,POST,PUT,DELETE
  }

  @Deprecated
  Scope scope() default Scope.EXTERNAL;

  @Deprecated
  enum Scope {
    INTERNAL, EXTERNAL
  }
}